モジュール詳細:反転灰色暗号

この暗号は灰色で殺風景で退屈に見えるかもしれない。まあ、言わせてもらうと...間違ってはいない。

モジュールは、3つのディスプレー、キーボード、2つの矢印、及び現在のページを表示するボタン(送信ボタン)で構成されている。

右の矢印を押すと、次のページに移動できる。左の矢印を押すと前のページに移動できる。ページは全部で2ページある。

ページ1には、上のディスプレーに6文字の暗号化された単語、真ん中のディスプレーに6桁の二進数、下のディスプレーには数字が表示される。

以下のルールに従って単語を解読する。

ステップ1:ポルタックス暗号

ここでは、暗号化された単語とページ2にある上のディスプレーの3文字の鍵を使用する。

更に、2段ずつの2グループ、合計4段からなるこの暗号表を使用する。

ABCDEFGHIJKLM
NOPQRSTUVWXYZNOPQRSTUVWXY
-------------------------
ACEGIKMOQSUWYACEGIKMOQSUW
BDFHJLNPRTVXZBDFHJLNPRTVX

暗号文を二分割し、2つの3文字の文字列を取得する。前半の文字列の下に後半の文字列を配置する。各列は上から下に読む文字列のペアとして扱う。各ペアに対して、以下を実行する。

  • Aという文字が、3/4段目にあるN番目の鍵の文字と同じ位置になるように最上段をずらす。Nは左から右に数えたペアの位置である。
  • 最上段の長さの範囲で、1/2段目の中からペアの最初の文字を探す。
  • 最上段の長さの範囲で、3/4段目の中からペアの二番目の文字を探す。
  • 2つの文字が同じ列にある場合、ペアの最初の文字を1/2段目の文字に置き換え、ペアの二番目の文字を3/4段目の文字に置き換える。
  • そうでない場合、ペアの最初の文字をそれと同じ段にあるかつペアの二番目の文字と同じ列にある文字に置き換える。ペアの二番目の文字をそれと同じ段にあるかつペアの最初の文字と同じ列にある文字に置き換える。

ペアの最初の文字で取得した文字の次に、ペアの二番目の文字で取得した文字を読むことで、新たな暗号化された単語を得られる。

暗号化された単語:LTNLUV
鍵:NMF

LTN
LUV
ABCDEF GHIJKLM
NOPQRSTUVWXYZ NOPQRSTUVWXY
ACEGIKMOQSUWY ACEGIKMOQSUW
BDFHJLNPRTVXZ BDFHJLNPRTVX

LL → MJ

ABCDEF GHIJKLM
NOPQRSTUVWXYZ NOPQRSTUVWXY
ACEGIKMOQSUWY ACEGIKMOQSUW
BDFHJLNPRTVXZ BDFHJLNPRTVX

TU → XM

ABCDEF GHIJKLM
NOPQRSTUVWXYZ NOPQRSTUVWXY
ACEGIKMOQSUWY ACEGIKMOQSUW
BDFHJLNPRTVXZ BDFHJLNPRTVX

NV → XB

MXX
JMB

新たな暗号化された単語:MXXJMB

ステップ2:円柱転置

ここでは、ステップ1で獲得した暗号化された単語とページ1にある下のディスプレーの数字を使用する。

数字の真下に暗号化された単語を、数字に合わせて折り返しながら読み順で記入する。

列を数字の昇順になるように並び替える。

最後に、英字を左から縦に読み、新たな英字の並びを得る。

暗号化された単語:MXXJMB
数字:15243

15243
MXXJM
B
12345
MXMJX
B

新たな暗号化された単語:MBXMJX

ステップ3:ビットスイッチ暗号

ここでは、ステップ2で獲得した暗号化された単語と真ん中のディスプレーにある6桁の二進数を使用する。

まず、シリアルナンバーの最初の文字を使用して変換器を特定する。

021453923154I24513R24531
121534A25134J25413S25431
231524B24153K34512T34521
331452C34152L35214U35421
441523D35124M35412V43251
541532E45123N43512W43521
651234F45132O45213X45231
751423G54123P53412Y53421
851432H54132Q54213Z54231

次に、暗号文の各文字を以下の表を用いて二進数に変換する。

A00001H01000O01111V10110
B00010I01001P10000W10111
C00011J01010Q10001X11000
D00100K01011R10010Y11001
E00101L01100S10011Z11010
F00110M01101T10100
G00111N01110U10101

各二進数に対して、その文字の位置にあるビット(真ん中のディスプレー)が1であれば、その二進数の各ビットを反転させる。そして、変換器を適用して、変換器上の数字が二進数内のビットの変換先位置を示すように並び替える。

変換器:23154
二進数:10011
1は2番目 → -1---
0は3番目 → -10--
0は1番目 → 010--
1は5番目 → 010-1
1は4番目 → 01011
10011 → 01011

最後に二進数を同じ表を用いて英字に変換し、復号された単語を取得する。

暗号化された単語:MBXMJX
使用変換器:23154
下のディスプレーの二進数:000001

M → 01101 + 0 → 01101 + 23154 → 10110 → V
B → 00010 + 0 → 00010 + 23154 → 00001 → A
X → 11000 + 0 → 11000 + 23154 → 01100 → L
M → 01101 + 0 → 01101 + 23154 → 10110 → V
J → 01010 + 0 → 01010 + 23154 → 00101 → E
X → 11000 + 1 → 00111 + 23154 → 10011 → S
復号された単語:VALVES

復号された単語を取得したら、それを送信する。入力を開始すると、全てのディスプレーが暗転し下のディスプレーに入力された文字が表示される。

入力を消去するには、いずれかの矢印をクリックする。ページが移動し、入力した文字列が消去される。6文字を超える入力はできないようになっている。

入力に問題がなければ、「SUB」と書かれたボタンを押して、回答を送信する。ミスが記録された場合、モジュールの最初のページに戻るが、暗号の再生成はされない。